<?php
/*
File Name:		fascicolo.php
Description: 	Definisce il custom type dei fascicoli
Plugin URI:  	http://www.SyriusWeb.com/
Author:      	SyriusWeb
Author URI:  	http://www.SyriusWeb.com/
*/

add_action('init', 'fascicoli_fascicolo_init'); // registro il posttype
// crea il posttype fascicoli e la tassonomia associata
function fascicoli_fascicolo_init() {	
	
	// creo il post_type
	$labels = array(
	    'name' => __('Fascicoli', FASCICOLI_DOMAIN),
	    'singular_name' => __('Fascicolo', FASCICOLI_DOMAIN),
	    'add_new' => __('Aggiungi nuovo', FASCICOLI_DOMAIN),
	    'add_new_item' => __('Nuovo Fascicolo', FASCICOLI_DOMAIN),
	    'edit_item' => __('Modifica Fascicolo', FASCICOLI_DOMAIN),
	    'new_item' => __('Nuovo Fascicolo', FASCICOLI_DOMAIN),
	    'all_items' => __('Tutti i fascicoli', FASCICOLI_DOMAIN),
	    'view_item' => __('Visualizza questo fascicolo', FASCICOLI_DOMAIN),
	    'search_items' => __('Cerca un fascicolo', FASCICOLI_DOMAIN),
	    'not_found' =>  __('Nessun fascicolo trovato', FASCICOLI_DOMAIN),
	    'not_found_in_trash' => __('Non ci sono fascicoli nel cestino', FASCICOLI_DOMAIN), 
	    'parent_item_colon' => '',
	    'menu_name' => 'Fascicoli'
	);
	$args = array(
		'labels' => $labels,
	    'public' => true,
	    'publicly_queryable' => true,
	    'show_ui' => true, 
	    'show_in_menu' => true, 
	    'query_var' => true,
	    'rewrite' => array('slug' => 'fascicolo'),
	    'capability_type' => array('fascicolo','fascicoli'),
	    'map_meta_cap' => true,
	    'has_archive' => true, 
	    'hierarchical' => true,
	    'menu_position' => null,
	    'supports' => array('title','excerpt', 'editor'),
	    
	); 
	register_post_type('fascicolo',$args);  	
		
	//registro il nuovo status per fascicolo
	register_post_status( 
		'closed', array(
			'label'       => __( 'Closed', FASCICOLI_DOMAIN ),
			'public'      => true,
			'_builtin'    => false,
			'label_count' => _n_noop( 'Closed <span class="count">(%s)</span>', 'Closed <span class="count">(%s)</span>' ),
			'show_in_admin_all_list' => true,
			'exclude_from_search' => true,
			'show_in_admin_status_list' => true
		)
	);
}



add_action('init', 'fascicoli_fascicolotax_init'); // creo la tassonomia per la vista view
// crea la tassonomia ed i termini di default
function fascicoli_fascicolotax_init() {
	
	if (!taxonomy_exists('view')) {
  
		$labels = array(
			'name' => __( 'Vista Fascicolo', FASCICOLI_DOMAIN ),
			'singular_name' => __( 'Vista', FASCICOLI_DOMAIN),
			'search_items' =>  __( 'Cerca fascicoli per vista', FASCICOLI_DOMAIN ),
			'all_items' => __( 'Tutte le viste dei fascicoli', FASCICOLI_DOMAIN ),
			'parent_item' => __( '' , FASCICOLI_DOMAIN),
			'parent_item_colon' => __( '', FASCICOLI_DOMAIN ),
			'edit_item' => __( 'Modifica Vista', FASCICOLI_DOMAIN ), 
			'update_item' => __( 'Aggiorna Vista', FASCICOLI_DOMAIN ),
			'add_new_item' => __( 'Aggiungi Nuova Vista', FASCICOLI_DOMAIN ),
			'new_item_name' => __( 'Nome della Vista', FASCICOLI_DOMAIN ),
			'menu_name' => __( 'Vista', FASCICOLI_DOMAIN ),
		); 	
	  
	    register_taxonomy('view',array('fascicolo'), array(
			'hierarchical' => true,
			'labels' => $labels,
			'show_ui' => true,
			'query_var' => false,
			'rewrite' => array( 'slug' => 'view' ),
	      
	    ));
  	}
  	
  	//@TODO rifare l'inserimento termini 
	// se non ci sono le viste di default le creo
	if (!term_exists( 'storico', 'view')) {
		insert_term(
			'Storico', // the term 
            'view', // the taxonomy
            array(
                'description'=> 'Visualizza tutte le revisioni degli allegati al fascicolo, in ordine di data di revisione',
                'slug' => 'storico',
                'parent'=> ''
            )
        );
        insert_term(
            'Documenti', 
            'view', 
            array(
                'description'=> 'Visualizza per codice la revisione corrente dell\'allegato e le revisioni superate sono visibili su click',
                'slug' => 'documenti',
                'parent'=> ''
            )
        );
        insert_term(
            'Dati', 
            'view', 
            array(
                'description'=> 'Visualizza le revisioni in una tabella, dove le righe sono costituite dai codici e le colonne dai periodi (mesi o anni a seconda della tipologia di revisione), mentre nelle celle &egrave; indicato l\'esito',
                'slug' => 'dati',
                'parent'=> ''
            )
        );
        insert_term(
            'Calendario', 
            'view', 
            array(
                'description'=> 'Visualizza gli allegati in un calendario con la data di emissione (in blu) e di scadenza (in rosso)',
                'slug' => 'calendario',
                'parent'=> ''
            )
        );	
	}
}


add_filter('manage_edit-fascicolo_columns', 'fascicolo_list_column_header'); // aggiunge le colonne alla lista dei fascicoli
// aggiunge le colonne della tabella elenco fascicoli
function fascicolo_list_column_header($cols) {	
	
	if (!isset($cols['parent'])) {
        $cols['parent'] = "Parent";
	}
	
	if (!isset($cols['view'])) {
        $cols['view'] = "View";
	}
	
    return $cols; 	
}

add_action('manage_fascicolo_posts_custom_column', 'fascicolo_list_column_row', 10, 2); // riempie le colonne alla lista dei fascicoli
// aggiunge il contenuto della colonna nella tabella elenco fascicoli
function fascicolo_list_column_row($column_name, $id) {
	global $post;
 	
 	// verifico quale colonna sto riempiendo
 	if ($column_name == 'view') { 		
 		echo get_the_term_list( $id, 'view', '', ', ', '' ); 		
 	}
 	
 	if ($column_name == 'parent') {
 		//@TODO 
 	}
}


add_filter('manage_edit-fascicolo_sortable_columns', 'fascicolo_list_sort_columns'); // rende ordinabile per le colonne
// indica che la colonna � ordinabile
function fascicolo_list_sort_columns($cols) {
	$cols['view'] = 'view'; // ora la tabella � ordinabile
 	$cols['parent'] = 'parent'; 	
 	return $cols;
}

